It is desirable to modify an integrated circuit layout under certain circumstances. One such circumstance is process migration, in which an integrated circuit_layout developed for one process technology is modified to abide a new set of design rules required by another process technology, normally from another foundry or another process node. Another example is layout optimization, in which an integrated circuit_layout is modified to improve the integrated circuit on certain metrics, such as timing, power consumption, signal integrity or manufacturability. The process of integrated circuit layout modification is performed either manually by layout designers using layout editing tools such as Cadence Virtuoso; or by a design automation computer program run on a computer system.
The integrated circuit layout modification is performed either in two-dimensional manner, in which both horizontal and vertical orientations are modified simultaneously; or by alternating between horizontal and vertical orientations, modifying layout in one orientation while keeping integrated circuit layout unchanged in the other orientation. Two-dimensional approach is considered superior for a plurality of reasons. Among others, first, some spatial constraints between layout shapes are intrinsically two-dimensional, such as, but not limited to, constraints between two geometric corners. Handling constraints of these types in one orientation at a time inevitably forces decisions to be made on the other orientation in advance, which may cause sub-optimal results or infeasibilities. Infeasibilities happen when there is no feasible solution that satisfies all constraints simultaneously. Second, modern process technologies are very complex, the design rules provided by foundries usually contain a plurality of conditional rules, most of which are two-dimensional. One example is width-dependent spacing rule, where the spacing between two shapes in one orientation depends on the overlapping length of the projections of these two shapes in another orientation. Handling constraints of these types in one orientation at a time inevitably forces decisions to be made on the other orientation in advance, which may cause sub-optimal results. Third, the quality of results of layout modification performed in one orientation at a time depends on which orientation to start with, therefore the results may not be optimal.
One existing approach of performing automated integrated circuit_layout modification is based on integrated circuit_layout compaction. Using this approach, the existing layout is examined to generate a collection of sets of edges. The edges in each set are relevant to each other. Then spatial constraints are generated between each set of edges from design rules and other specifications. By allocating variables for locations of edges and points, the constraints are translated to a collection of inequalities and equations that form the constraints of a Linear Programming (“LP”) problem. The objective function of the LP is constructed to reflect the desirable qualities of an integrated circuit. For example, smaller die size is desirable to achieve lower cost and higher running clock frequency of an integrated circuit. In turn achieving smaller die size is translated to minimization of layout area. After an optimal or close to optimal solution of the LP is found, the existing integrated circuit layout is modified according to the solution. If the design structure of an integrated circuit layout is flat, and the formulation of constraints is such that each spatial constraint constructed between two edges contains two linear terms each containing the two variables representing the position of the two edges, the layout modification problem may be represented by a constraint graph model, which may be solved more efficiently.
Another approach of performing automated layout modification is based on minimum perturbation of an integrated circuit layout. It enforces design rules and other specifications while maintaining similarity to an existing integrated circuit layout. An LP is formulated using constraints generated from design rules and other specifications. The objective function of the LP is constructed to measure location perturbation and separation perturbation of objects in layouts. The solving of the LP minimizes the perturbation to both location and separation while enforcing constraints.
Some prior art formulate the optimization problem by including all the active constraints. In the case when mutually exclusive spatial constraints or groups of spatial constraints exist, decision has to be made in advance which spatial constraints or which groups of spatial constraints should be active, while the other spatial constraints or groups of spatial constraints should be deactivated. The decision of activating which spatial constraints or groups of spatial constraints depends mostly on the original layout. This practice limits the flexibility and capability for integrated circuit layout modification process to obtain optimal or close to optimal solution.
Some prior art deal with conditional spatial constraints or two-dimensional spatial constraints by using a branch and bound approach. By pruning the decision tree branches that generate worse results then that already recorded, it is possible to achieve close to optimal compaction result. However, the approaches were presented in the cases that can be modeled by constraint graphs, and where the solution search space is always feasible. When constraints of equality types are presented, for example, when device size is fixed, or when one dimension of the design is of fixed value, the order of variables handled by the branch and bound algorithm may have huge impact on integrated circuit layout modification run time to make the approaches practically not useable.